/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controleur;

import DAO.DAOException;
import DAO.DAOFactory;
import DAO.TypeIncidentDAOmysql;
import DAO.TypeIncidentDao;
import Modele.TypeIncident;
import Vue.TypeIncidentForm;
import javax.swing.JOptionPane;

/**
 *
 * @author 20cent
 */
public class TypeIncFormControleur {

    private TypeIncidentForm vue;
    private TypeIncident type;

    public TypeIncFormControleur(TypeIncidentForm vue) {
        this.vue = vue;
    }

    public void enregistrer(TypeIncident typeIncident) {

        type = typeIncident;
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    TypeIncidentDao dao = new TypeIncidentDAOmysql(DAOFactory.getInstance());
                    dao.save(type);
                    JOptionPane.showMessageDialog(vue, "Insertion réalisée avec succès");
                } catch (DAOException e) {
                    JOptionPane.showMessageDialog(vue,
                            e.getMessage(), "Erreur", JOptionPane.WARNING_MESSAGE);
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(vue,
                            "Une erreur s'est produite à l'insertion !", "Erreur", JOptionPane.WARNING_MESSAGE);
                }
                nemovelo.NemoVelo.typesIncident.add(type);
                vue.dispose();
            }
        });
    }

    public void modifier(TypeIncident typeI) {
        type = typeI;
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    TypeIncidentDao dao = new TypeIncidentDAOmysql(DAOFactory.getInstance());
                    dao.update(type);
                    JOptionPane.showMessageDialog(vue, "Modification réalisée avec succès");
                } catch (DAOException e) {
                    JOptionPane.showMessageDialog(vue,
                            e.getMessage(), "Erreur", JOptionPane.WARNING_MESSAGE);
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(vue,
                            "Une erreur s'est produite à la modification !", "Erreur", JOptionPane.WARNING_MESSAGE);
                }
                type.notifierObserveurs(type.getClass().getSimpleName());
                vue.dispose();
            }
        });
    }
}
